// 主题管理器
class ThemeManager {
	constructor() {
		this.isNightMode = uni.getStorageSync('nightMode') || false;
		this.listeners = [];
	}

	// 切换夜间模式
	toggleNightMode() {
		console.log('toggleNightMode 被调用，当前状态:', this.isNightMode);
		this.isNightMode = !this.isNightMode;
		console.log('切换后状态:', this.isNightMode);
		uni.setStorageSync('nightMode', this.isNightMode);
		this.notifyListeners();
		return this.isNightMode;
	}

	// 设置夜间模式
	setNightMode(enabled) {
		this.isNightMode = enabled;
		uni.setStorageSync('nightMode', this.isNightMode);
		this.notifyListeners();
	}

	// 获取当前模式
	getNightMode() {
		return this.isNightMode;
	}

	// 添加监听器
	addListener(callback) {
		this.listeners.push(callback);
	}

	// 移除监听器
	removeListener(callback) {
		const index = this.listeners.indexOf(callback);
		if (index > -1) {
			this.listeners.splice(index, 1);
		}
	}

	// 通知所有监听器
	notifyListeners() {
		console.log('通知监听器，状态:', this.isNightMode, '监听器数量:', this.listeners.length);
		this.listeners.forEach(callback => {
			callback(this.isNightMode);
		});
		// 发送全局事件
		uni.$emit('themeChanged', this.isNightMode);
	}

	// 获取主题样式类名
	getThemeClass() {
		return this.isNightMode ? 'night-mode' : '';
	}

	// 获取主题颜色
	getThemeColors() {
		return this.isNightMode ? {
			background: '#1a1a1a',
			cardBackground: '#2c2c2c',
			textPrimary: '#e0e0e0',
			textSecondary: '#b0b0b0',
			border: '#3a3a3a',
			accent: '#3498db'
		} : {
			background: '#f5f6fa',
			cardBackground: '#ffffff',
			textPrimary: '#333333',
			textSecondary: '#666666',
			border: '#f0f0f0',
			accent: '#007AFF'
		};
	}

	// 强制重置夜间模式
	resetNightMode() {
		console.log('强制重置夜间模式');
		this.isNightMode = false;
		uni.setStorageSync('nightMode', false);
		this.notifyListeners();
	}
}

// 创建全局主题管理器实例
const themeManager = new ThemeManager();

export default themeManager;
